1. The Field of the Invention
The present invention relates to the field of web browsers. More particularly, the present invention relates to a web browser's ability to specify client version properties or other information relating to the capabilities of the browser such that appropriate content is provided to the web browser and can be rendered as appropriately as possible.
2. Background and Related Art
Modern computer technology can provide a computer user with information at very high speeds. Many computers intended for interaction with a human operator also have built-in communications functionality. The communications functionality allows the computer to communicate and retrieve information from other computers. Computer networks provide a forum for multiple computers to communicate with each other. This allows the computer user to not only have access to high-speed information, but also vast amounts of information. The Internet is a very large network with connections to billions of computers. Computers on a network that access information are often referred to as clients, whereas computers that provide information to such clients are often referred to as servers. A client that accesses information from a server over the Internet can obtain information including content that is displayed or otherwise presented to the user, executable code that is executed on the client, or both.
Once information on a server has been accessed, the client must have a suitable software program configured to interpret the information. Often, the interpreted information is then displayed or otherwise provided to the user. Servers must also provide the information in a certain format so that the interpreter program on the client can appropriately interpret the information. These requirements have resulted in several semi-standardized computer languages or data formats intended for use with large networks such as the Internet, including HTML, XML, and Java. These languages are somewhat dynamic as demands for alternate ways to deliver and display network information proliferate. The growth of the languages is limited, however, by the interpretive programs.
The interpretive programs are generally known as web browsers. There are currently two major web browser lines that make up most of the web browser market, namely, Microsoft Internet Explorer developed by Microsoft Corporation and Netscape Navigator developed by Netscape Communications Corporation. In addition, there are several other web browsers available. Within each web browser line are different browser versions that have different functionality. The functionality of web browsers relates to the types of content and code of Internet documents that can be processed and executed by the web browsers.
Typically, a newer browser version incorporates the functionality of older versions, as well as adds new functionality So, for instance, Internet Explorer version 5.0 incorporates the functionality of Internet Explorer 4.0 as well as some additional features. In addition, different lines of web browsers may have different functionality. One notable example of such different functionality is the difference in the way Microsoft Internet Explorer and Netscape Navigator perform the function that determines the resolutions at which graphics are displayed.
As new features of the languages and data format used in Internet documents are developed, many web browsers are updated to support such features. Likewise, as new web browser versions with new functionality are developed and released, Internet content providers can then use the corresponding enhancements of the languages and data formats, with the expectation that the enhancements will be compatible with many web browsers. Thus, developments in the functionality available on the Internet generally has required the cooperation of web browser developers and the developers of the Internet languages and data formats.
Of course, when new Internet functionality becomes available, many of those who access the Internet continue to use legacy web browsers that do not support the new functionality. When a web browser encounters code or data that it cannot process, the code or data is typically ignored. Understandably, this presents a challenge to Internet content providers that desire to make their information, with a maximum amount of functionality, available to as many clients as possible. Due to the large market share of Internet Explorer and Netscape Navigator, the functionality supported by these web browser lines has typically been a controlling factor as to the acceptance of new Internet functionality by Internet content providers.
One solution for ensuring information compatibility involves communication from the client to the server of version information regarding the web browser when the client requests information over the Internet. This is typically done by including a User-Agent Hypertext Transfer Protocol (HTTP) header in a request sent to the server. The User-Agent header is a data structure that enables the server to select content that is appropriate for specified browser versions and capabilities. This allows the server to provide the client with information that is compatible with the web browser running on the client. One problem with this solution is that with the multiple lines of web browsers, and the multiple versions within those lines, servers need to have a large number of different versions of information corresponding to the processing capabilities of the different versions of web browsers. Most servers that offer different versions of content only offer fully functional content for at most a few versions of the Microsoft Internet Explorer and Netscape Navigator browsers.
In order to operate in this environment, less common web browsers can receive web content by informing servers that they can process content that has been designed for specific versions of the most common web browsers. For example, a certain version of a less common web browser could inform servers that it has the capabilities of a specified version of Microsoft Internet Explorer and/or Netscape Navigator. In this situation, the server responds to the request for content as if the browser were actually the specified version of Microsoft Internet Explorer or Netscape Navigator.
This approach is suitable when the version of the less common web browser has all the processing capabilities of the latest versions of Internet Explorer and Netscape Navigator. However, the capabilities of a version of a less common web browser operating on a given client often do not completely coincide with those of Internet Explorer and Netscape Navigator. In this situation, the less common web browser is faced with one of two options for requesting content. First, the browser could inform servers that it is compatible with an older version of one of the most common browsers. In this situation, however, some servers may refuse to provide content to the client or may provide content with reduced functionality, even if the web browser were, in fact, compatible with the most advanced functionality of the requested content. In the alternative, the browser could inform servers that it is compatible with the most recent versions of the most common browsers. In this situation, however, there is a risk that the content that is received cannot be processed by the client. In view of the foregoing, there is no suitable conventional technique for clients having less common browsers to request the appropriate content from servers.